////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                            //
//                                                         WNProject                                                          //
//                                                                                                                            //
//            This file is distributed under the BSD 2-Clause open source license. See License.txt for details.               //
//                                                                                                                            //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#pragma once

#ifndef __WN_SCRIPTING_FUNCTION_DECL_H__
#define __WN_SCRIPTING_FUNCTION_DECL_H__

#include "WNScripting/inc/WNTypeManager.h"

#include <vector>
namespace WNScripting {
    struct WNFunctionDecl {
        WNTypeElement mReturnType;
        std::vector<WNTypeElement> mArgumentTypes;
        WNIdentifierElement mName;
        llvm::Function* mLLVMFunction;
        WNScopedVariableList mScopedVariables;
        WNIdentifierElement mFileName;
        WN_BOOL mStackReturn;
    };
}
#endif // __WN_SCRIPTING_FUNCTION_DECL_H__